

BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL ); BOOL ModifyMenu( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap* pBmp );
Возвращаемое значение
Отлично от нуля, если функция успешна, иначе 0.
Параметры
nPosition
Определяет пункт меню, который будет изменен. nFlags параметр может использоваться, чтобы интерпретировать nPosition следующими способами:
MF_BYCOMMAND Определяет, что параметр дает команду ID существующего пункта меню. Это - значение по умолчанию, если ни MF_BYCOMMAND ни MF_BYPOSITION не установлен. MF_BYPOSITION Определяет, что параметр дает позицию существующего пункта меню. Первый элемент - в позиции 0.
nFlags
Определяет, как nPosition интерпретируется и дает информацию относительно изменений, которые будут сделаны к пункту меню. Для списка флажков, которые могут быть установлены, см. AppendMenu функцию.
nIDNewItem
Определяет или команду ID изменяемого пункта меню или, если nFlags установлен к MF_POPUP, дескриптор всплывающего меню (HMENU) . nIDNewItem параметр игнорируется если nFlags установлен к MF_SEPARATOR.
lpszNewItem
Определяет содержание нового пункта меню. nFlags параметр может использоваться, чтобы интерпретировать lpszNewItem следующими способами:
MF_OWNERDRAW Содержит обеспеченное прикладная программой 32-разрядное значение, что прикладная программа может использовать, чтобы поддержать дополнительные данные, связанные с пунктом меню. Это 32-разрядное значение доступно прикладной программе, когда это обрабатывает MF_MEASUREITEM и MF_DRAWITEM. MF_STRING Содержит длинный указатель на строку с нулевым символом в конце или к CString. MF_SEPARATOR lpszNewItem параметр игнорируется (не необходимый).
pBmp
Указатель на объект CBitmap, который будет использоваться как пункт меню.
Замечания
Изменяет существующий пункт меню в позиции, определенной nPosition. Прикладная программа определяет новое состояние пункта меню, устанавливая значения в nFlags. Если эта функция заменяет всплывающее меню , связанное с пунктом меню, это уничтожает старое всплывающее меню и освобождает память, используемую всплывающим меню.
Когда nIDNewItem определяет всплывающее меню, это становится частью меню, в которое это вставлено. Если то меню разрушено, вставленное меню будет также разрушено. Вставленное меню должно отсоединиться от объекта CMenu, чтобы избежать конфликта.
Всякий раз, когда меню, которое постоянно находится в окне, изменено (отображается или нет окно), прикладная программа должна вызвать CWnd::DrawMenuBar. Чтобы изменять атрибуты существующих пунктов меню, намного быстрее использовать CheckMenuItem и EnableMenuItem функции.

